import time
import tkinter as tk

class Window:
    def __init__(self, title='nms', width=600, height=320, staFunc=bool, stoFunc=bool):
        self.w = width
        self.h = height
        self.stat = True
        self.staFunc = staFunc
        self.stoFunc = stoFunc
        self.staIco = None
        self.stoIco = None

        self.root = tk.Tk(className=title)

    def center(self):
        ws = self.root.winfo_screenwidth()
        hs = self.root.winfo_screenheight()
        x = int( (ws/2) - (self.w/2) )
        y = int( (hs/2) - (self.h/2) )
        self.root.geometry('{}x{}+{}+{}'.format(self.w, self.h, x, y))

    def packBtn(self):
        self.btnSer = tk.Button(self.root, command=self.event, width=25, height=10)
        self.btnSer.pack(padx=20, side='left')
        btnQuit = tk.Button(self.root, text='画图', command=self.root.quit, width=25, height=10)
        btnQuit.pack(padx=20, side='right')

    def event(self):
        self.btnSer['state'] = 'disabled'
        if self.stat:
            if self.stoFunc():
                self.btnSer['text'] = '组员：郝权权，李国强，陈龙:.'
                self.stat = False
                self.root.iconbitmap(self.stoIco)
            else:
             if self.staFunc():
                self.btnSer['text'] = '软工十二班.'
                self.stat = True
                self.root.iconbitmap(self.staIco)
        self.btnSer['state'] = 'active'

    def loop(self):
        self.root.resizable(False, False)   
        self.packBtn()
        self.center()                       
        self.event()
        self.root.mainloop()

########################################################################
def sta():
    print('画图.')
    return True
def sto():
    print('可爱猫咪.')
    return True

if __name__ == '__main__':
    import sys, os

    w = Window(staFunc=sta, stoFunc=sto)
    w.staIco = os.path.join(sys.exec_prefix, 'DLLs\pyc.ico')
    w.stoIco = os.path.join(sys.exec_prefix, 'DLLs\py.ico')
    w.loop()
#!/usr/bin/env python3
from turtle import *
#画心用的函数
def curvemove():
    for i in range(200):
        right(1)
        forward(0.1)
#初始化
setup(600,600)
pu()
goto(60,100)
pensize(4)
pendown()
#画左半边的头
for i in range(150,212,2):
    seth(i)
    fd(3)
seth(145)
fd(50)
left(125)
fd(50)
for i in range(240,318,2):
    if i==290:
        seth(190)
        fd(10)
        seth(10)
        fd(10)
    elif i==300:
        seth(200)
        fd(10)
        seth(20)
        fd(10)
    seth(i)
    fd(3)
#画右半边的头
pu()
goto(60,100)
pendown()
seth(45)
fd(50)
right(125)
fd(50)
for i in range(-60,-138,-2):
    if i==-110:
        seth(-10)
        fd(10)
        seth(170)
        fd(10)
    elif i==-120:
        seth(-20)
        fd(10)
        seth(160)
        fd(10)
    seth(i)
    fd(3)
#头部到这里就画好外观了
seth(-40)
fd(52)
seth(-135)
fd(45)
pu()
seth(-105)
fd(5)
pendown()
fd(17)
for i in range(130,106,-3):
    seth(i)
    fd(2.5)
for i in range(106,30,-10):
    seth(i)
    fd(2)
seth(38)
fd(25)
seth(135)
fd(31)
seth(169)
fd(6)
seth(270)
fd(105)
#右边的身子画好了
#开始画左边的身子
pu()
goto(-52,-30)
pendown()
seth(220)
fd(48)#52
seth(250)
fd(3)
seth(270)
fd(3)
seth(290)
fd(2)
seth(-40)
fd(44)
seth(228)
fd(20)
seth(5)
fd(22)
#画叉腰的动作
pu()
goto(-52,-84)
seth(133)
pendown()
fd(22)
seth(90)
fd(2)
seth(60)
fd(2)
seth(45)
fd(29)
seth(0)
fd(3)
seth(-93)
fd(102)
#叉腰动作结束 接下来画嘴巴 眼睛
pu()
goto(-43,38)
seth(0)
pendown()
begin_fill()
circle(5)
end_fill()
pu()
fd(108)
pendown()
begin_fill()
circle(5)
end_fill()
#调色环节
pu()
goto(60,24)
pencolor("pink")
pensize(6)
seth(225)
pendown()
fd(7)
pu()
goto(70,24)
seth(225)
pendown()
fd(7)
#右半边调色完毕
pu()
goto(-49,24)
seth(225)
pendown()
fd(7)
#画嘴巴
pu()
pensize(4)
pencolor("black")
goto(5,21)
seth(-45)
pendown()
fd(5)
goto(5,21)
seth(225)
fd(5)
#左边的颜色
pu()
pencolor("pink")
pensize(6)
goto(-39,24)
seth(225)
pendown()
fd(7)

#给耳朵填充颜色
pu()
goto(-40,92)
seth(80)
pendown()
fillcolor("pink")
begin_fill()
circle(14,360,3)
end_fill()
pu()
goto(72,100)
seth(-74)
pendown()
begin_fill()
circle(14,360,3)
end_fill()
#酷酷的黑翅膀
pu()
pensize(4)
color('black', 'black')
begin_fill()
goto(-90,-35)
seth(135)
pendown()
fd(25)
seth(225)
fd(45)
seth(25)
fd(15)
seth(-80)
pensize(2)
fd(15)
seth(55)
fd(15)
seth(25)
fd(10)
seth(-80)
fd(15)
seth(75)
fd(15)
goto(-90,-35)
end_fill()
#最后一个翅膀
pu()
goto(125,-30)
seth(45)
pendown()
begin_fill()
fd(25)
seth(-45)
fd(45)
seth(155)
fd(15)
seth(-80)
fd(15)
seth(120)
fd(17)
seth(170)
fd(15)
seth(-80)
fd(15)
seth(120)
fd(17)
goto(125,-30)
end_fill()

#来个心
speed(10)
pu()
goto(0,140)
seth(0)
pendown()
color('red', 'pink')
pensize(2)
begin_fill()
left(140)
forward(11.1)
curvemove()
left(120)
curvemove()
forward(11.1)
end_fill()
#来个心
pu()
goto(-125,0)
seth(30)
pendown()
color('red', 'pink')
pensize(2)
begin_fill()
left(140)
forward(11.1)
curvemove()
left(120)
curvemove()
forward(11.1)
end_fill()
#来个心
pu()
goto(140,0)
seth(-30)
pendown()
color('red', 'pink')
pensize(2)
begin_fill()
left(140)
forward(11.1)
curvemove()
left(120)
curvemove()
forward(11.1)
end_fill()
#来个心
pu()
goto(145,-85)
seth(-30)
pendown()
color('red', 'pink')
pensize(2)
begin_fill()
left(140)
forward(11.1)
curvemove()
left(120)
curvemove()
forward(11.1)
end_fill()
#来个心
pu()
goto(-132,-85)
seth(30)
pendown()
color('red', 'pink')
pensize(2)
begin_fill()
left(140)
forward(11.1)
curvemove()
left(120)
curvemove()
forward(11.1)
end_fill()
exitonclick()
